{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## OpenAI API 키 발급 및 설정\n",
    "\n",
    "1. OpenAI API 키 발급\n",
    "\n",
    "- [OpenAI API 키 발급방법](https://wikidocs.net/233342) 글을 참고해 주세요.\n",
    "\n",
    "1. `.env` 파일 설정\n",
    "\n",
    "- 프로젝트 루트 디렉토리에 `.env` 파일을 생성합니다.\n",
    "- 파일에 API 키를 다음 형식으로 저장합니다:\n",
    "  `OPENAI_API_KEY` 에 발급받은 API KEY 를 입력합니다.\n",
    "\n",
    "- `.env` 파일에 발급한 API KEY 를 입력합니다.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# LangChain 업데이트\n",
    "# !pip install -r https://raw.githubusercontent.com/teddylee777/langchain-kr/main/requirements.txt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# API KEY를 환경변수로 관리하기 위한 설정 파일\n",
    "from dotenv import load_dotenv\n",
    "\n",
    "# API KEY 정보로드\n",
    "load_dotenv()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "API Key 가 잘 설정되었는지 확인합니다.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "import os\n",
    "\n",
    "print(f\"[API KEY]\\n{os.environ['OPENAI_API_KEY'][:-15]}\" + \"*\" * 15)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "설치된 LangChain 버전을 확인합니다."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "from importlib.metadata import version\n",
    "\n",
    "print(\"[LangChain 관련 패키지 버전]\")\n",
    "for package_name in [\n",
    "    \"langchain\",\n",
    "    \"langchain-core\",\n",
    "    \"langchain-experimental\",\n",
    "    \"langchain-community\",\n",
    "    \"langchain-openai\",\n",
    "    \"langchain-teddynote\",\n",
    "    \"langchain-huggingface\",\n",
    "    \"langchain-google-genai\",\n",
    "    \"langchain-anthropic\",\n",
    "    \"langchain-cohere\",\n",
    "    \"langchain-chroma\",\n",
    "    \"langchain-elasticsearch\",\n",
    "    \"langchain-upstage\",\n",
    "    \"langchain-cohere\",\n",
    "    \"langchain-milvus\",\n",
    "    \"langchain-text-splitters\",\n",
    "]:\n",
    "    try:\n",
    "        package_version = version(package_name)\n",
    "        print(f\"{package_name}: {package_version}\")\n",
    "    except ImportError:\n",
    "        print(f\"{package_name}: 설치되지 않음\")"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "py-test",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.13"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
